The Location Linking Concept: A Basis for Verification of Code Using Pointers

نویسندگان

  • Gregory Kulczycki
  • Hampton Smith
  • Heather K. Harton
  • Murali Sitaraman
  • William F. Ogden
  • Joseph E. Hollingsworth
چکیده

Ultimately, any verifying compiler effort needs to be able to verify code that makes use of pointers, though language mechanisms for data abstraction, alias avoidance and control, or disciplined software development techniques may minimize the need for code that is directly based on pointering. It is also clear that the verification machinery of such as compiler must use specifications of components to reason about component-based software in order to be scalable. So this paper follows a natural question that arises by putting these two ideas together: Can the general machinery in a verifying compiler for component specificationbased verification also be used to verify code that uses typically built-in types, such as arrays and pointers, if those types are defined to have specifications similar to any other component? This paper answers the question in the affirmative by presenting a Location Linking Template, a concept that captures pointer behavior, and using it to verify the code of a simple data abstraction realized using pointers. Additionally, we note that the concept can be extended and realized so that different languages can plug in alternative implementations to give programmers the flexibility to choose manual memory management or automatic garbage collection depending on their performance concerns. 5

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Compiler verification meets cross-language linking via data abstraction Citation

Many real programs are written in multiple different programming languages, and supporting this pattern creates challenges for formal compiler verification. We describe our Coq verification of a compiler for a high-level language, such that the compiler correctness theorem allows us to derive partial-correctness Hoare-logic theorems for programs built by linking the assembly code output by our ...

متن کامل

Safe Pointers in SPARK 2014

In the context of deductive software verification, programs with pointers present a major challenge due to pointer aliasing. In this paper, we introduce pointers to SPARK, a well-defined subset of the Ada language, intended for formal verification of mission-critical software. Our solution is based on static alias analysis inspired by Rust's borrow-checker and affine types, and enforces the Con...

متن کامل

An Abstract, Approximation-Based Approach to Embedded Code Pointers and Partial-Correctness

To support higher-order type-like features such as embedded code pointers, in logic-based verification, one approach is to build assertion logic that combines logic and types. But it is not totally satisfactory in various aspects. Another approach is to use approximation in logic to simulate the behavior of types and typing invariants, yet polluting program specifications and proofs with comple...

متن کامل

Converting C Pointers to Java References

We consider the problem of converting C pointers to the less exible concept of references. Our main application is converting scienti c applications from C to Java. We provide a general method to model essentially all features of pointers using references. The model is easily implemented in Java. We give optimizations that map key facilities like arrays and structures onto the obvious Java equi...

متن کامل

Elasto-plastic analysis of discontinuous medium using linearly conforming radial point interpolation method

In this paper, the linearly conforming enriched radial basis point interpolation method is implemented for the elasto-plastic analysis of discontinuous medium. The linear conformability of the method is satisfied by the application of stabilized nodal integration and the enrichment of radial basis functions is achieved by the addition of linear polynomial terms. To implement the method for the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012